﻿/**
 * @file coverwidgetitemtableview.h
 * @author huangxb
 * @email 18228033207@163.com
 * @date 2024.04.04
 * @license MIT License
 * @brief 自定义tableview.
 * 演示通过自定义widget覆盖视图项所在位置来显示自定义控件
 *
 * @htmlonly
 * <span style="font-weight: bold">History</span>
 * @endhtmlonly
 * Version|Auther|Date|Describe
 * ------|----|------|--------
 * V1.0|huangxb|2024.04.04|创建
 */
#ifndef COVERWIDGETITEMTABLEVIEW_H
#define COVERWIDGETITEMTABLEVIEW_H

/* 自定义头文件 */
#include "viewdatarefnodeview.h"
/* 库头文件 */
#include <QWidget>

/* 前置声明 */
namespace Ui {
class CCoverWidgetItemTableView;
}
class QStandardItemModel;
class QItemSelection;

/** @brief 自定义tableview. */
class CCoverWidgetItemTableView
    : public QWidget
    , public CViewDataRefNodeView
{
    Q_OBJECT

private:
    Ui::CCoverWidgetItemTableView *ui;

    QStandardItemModel* m_pFileModel = nullptr; /**< 表格使用的文件模型 */

public:
    /** @brief 构造函数. */
    explicit CCoverWidgetItemTableView(QWidget *parent = nullptr);
    /** @brief 析构函数. */
    ~CCoverWidgetItemTableView();

    virtual void OnViewDataRefNodeLoaded() override{}

private slots:
     void OnTableItemSelectionChange(const QItemSelection &selected, const QItemSelection &deselected);
    void on_tableView_clicked(const QModelIndex &index);

    void on_m_moveUp_pushButton_clicked();
    void on_m_moveDown_pushButton_clicked();
    void on_m_delete_pushButton_clicked();
    void on_lineEdit_textChanged(const QString &arg1);

    void OnSel(int nCount);
private:
    /**
     * @brief 获取表格当前选中的行
     * @return 行列表
     */
    QList<int> GetSelectedRows();
};

#endif // COVERWIDGETITEMTABLEVIEW_H
